How many apples can you put into the basket

Time: O(NLogN); Space: O(N); easy

You have some apples, where arr[i] is the weight of the i-th apple.

You also have a basket that can carry up to 5000 units of weight.

Return the maximum number of apples you can put in the basket.

Example 1:

Input: arr = [100,200,150,1000]

Output: 4

Explanation:

  • All 4 apples can be carried by the basket since their sum of weights is 1450.

Example 2:

Input: arr = [900,950,800,1000,700,800]

Output: 5

Explanation:

  • The sum of weights of the 6 apples exceeds 5000 so we choose any 5 of them.

Constraints:

  • 1.1 <= len(arr) <= 10^3

  • 2.1 <= arr[i] <= 10^3

[1]:
class Solution1(object):
    """
    Time: O(NLogN)
    Space: O(N)
    """
    def maxNumberOfApples(self, arr):
        """
        :type arr: List[int]
        :rtype: int
        """
        LIMIT = 5000
        arr.sort()
        result, total = 0, 0

        for x in arr:
            if total+x > LIMIT:
                break
            total += x
            result += 1

        return result
[2]:
s = Solution1()
arr = [100,200,150,1000]
assert s.maxNumberOfApples(arr) == 4
arr = [900,950,800,1000,700,800]
assert s.maxNumberOfApples(arr) == 5